1. Field of the Invention
The present invention is related to improving the performance of Transmission Control Protocol (TCP) based applications on Data Over Cable Service Interface Specification (DOCSIS) channels.
2. Related Art
The importance to the modern economy of rapid data access and exchange cannot be overstated. This explains the exponentially increasing popularity of the data access and exchange via cable networks (including coaxial cable or Hybrid fiber coaxial cable), the Internet, intranets, wireless networks, satellites and so forth (i.e., communication mediums). Rapid data access and exchange is partly dependent upon how efficiently bandwidth is allocated to a data provider in order for the data provider to transfer the requested data to a user via one of the communication mediums mentioned above.
One very desirable solution for rapid data access and exchange is via cable networks and cable modems. Cable modems provide communications on cable networks. In general, a user connects a cable modem to the TV outlet for his or her cable TV, and the cable TV operator connects a cable modem termination system (CMTS) in the operator headend. The CMTS is a central device for connecting the cable network to a data network like the Internet. The CMTS is a central distribution point for a cable system. Data flows downstream from the CMTS to the cable modem (i.e., downstream communication). Alternatively, data flows upstream from the cable modem to the CMTS (i.e., upstream communication).
A common cable modem standard today is the CableLabs® Certified™ Cable Modem project, also known as DOCSIS® (Data Over Cable Service Interface Specification), which defines interface requirements for cable modems involved in high-speed data distribution over cable television system networks. The DOCSIS specifications define technical requirements for both cable modems and CMTS.
The performance of Transmission Control Protocol (TCP) based applications (such as File Transfer Protocol (FTP) and HyperText Transfer Protocol (HTTP)) is severely limited on DOCSIS channels due to the extreme asymmetry between the speed of the upstream and downstream paths, as well as due to the high latency of the upstream path relative to the lower latency of the downstream path. These issues also apply to numerous other physical link types (satellite, DSL, etc). One of the approaches to alleviating the bottlenecks is called Ack Filtering, where the customer premises equipment (“CPE”) device (such as, a cable modem or router) looks for TCP Ack packets being queued to be transmitted upstream, and removes “older” Ack packets in favor of sending the newer Ack packet. The older Ack packet is removed only if the packet contains no data. If there is data in the older Ack packet, then it cannot be removed without discarding the data. However, the newer Ack number can be promoted to the older packet. A TCP Ack is any TCP packet that has the Ack bit set in the flags portion of the TCP header, and the Acknowledgement Number value indicates the Sequence Number being acknowledged.
There are several issues related to Ack Filtering that can make the implementation difficult and inefficient, especially when taking into account DOCSIS features like piggyback requests and concatenation.